shell 获取用户输入指定范围的单个字符的两种方法
但是,当输入*等特殊字符时,会报错。
需求:要求获取用户输一个字符a-zA-Z: 方法一: 复制代码 代码如下: echo `echo {a..z}``echo {A..Z}` /tmp/letterfile while read -p please input a letter: letter do ((`awk -v var=$letter 'BEGIN{print length(var)}'` == 1)) grep -q $letter /tmp/tmpfile break done rm -f /tmp/letterfile echo you input letter $letter [root@station1 ~]# cat a.sh 复制代码 代码如下: echo `echo {a..z}``echo {A..Z}` /tmp/letterfile while read -p please input a letter: letter do ((`awk -v var=$letter 'BEGIN{print length(var)}'` == 1)) grep -q $letter /tmp/tmpfile break done rm -f /tmp/letterfile echo you input letter $letter [root@station1 ~]# chmod +x a.sh [root@station1 ~]# ./a.sh please input a letter: 123 please input a letter: abc please input a letter: 4 please input a letter: please input a letter: ( please input a letter: a you input letter a [root@station1 ~]# 最初使用expr length $letter 替代 wk -v var=$letter 'BEGIN{print length(var)}'的。
如下: [root@station1 ~]# cat data 复制代码 代码如下: while read -p please input a letter: letter do ((`expr length $letter` == 1)) expr $letter : [[:alnum:]] /dev/null break done echo you input letter $letter [root@station1 ~]# bash data please input a letter: 123 please input a letter: abc please input a letter: a you input letter a [root@station1 ~]# bash data please input a letter: * expr: 语法错误 data: line 3: ((: == 1: syntax error: operand expected (error token is == 1) please input a letter: 来看方法二: 复制代码 代码如下: while read -p please input a letter: letter do [[ `echo $letter | awk '/^[[:alpha:]]$/{print 1}'` -eq 1 ]] break done echo you input letter $letter 如下: [root@station1 ~]# cat b.sh 复制代码 代码如下: while read -p please input a letter: letter do [[ `echo $letter | awk '/^[[:alpha:]]$/{print 1}'` -eq 1 ]] break done echo you input letter $letter [root@station1 ~]# chmod +x b.sh [root@station1 ~]# ./b.sh please input a letter: * please input a letter: abc please input a letter: 234 please input a letter: ) please input a letter: T you input letter T [root@station1 ~]# ,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/shell/11894.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
Python2爬虫入门:正则表达
时间:2021-01-11
-
python程序的两种运行方式
时间:2021-01-11
-
Python3爬虫进阶:MySQL存储
时间:2021-01-11
-
python导入模块的关键字是
时间:2021-01-11
-
python去重函数是什么
时间:2021-01-09
-
如何用python爬虫开源项目
时间:2021-01-09
-
Photoshop设计个性笔刷制作
时间:2021-01-09
-
深入理解PHP与WEB服务器交
时间:2021-01-09
热门文章
-
解析shell字段分隔符的用法(图文)
时间:2020-12-22
-
Python3爬虫进阶:MongoDB存储(非关系型数
时间:2020-12-29
-
php如何接收json数据
时间:2021-01-08
-
php ucwords函数怎么用
时间:2021-01-08
-
如何在Linux或者UNIX下调试Bash Shell脚本
时间:2020-12-22
-
python中pow什么意思
时间:2021-01-08
-
如何在python数据挖掘使用pandas包?
时间:2021-01-09
-
关于php中匿名函数与回调函数的详解
时间:2020-12-29
-
用python以字典方式写入csv文件实现操作
时间:2021-01-07
-
easyswoole 启动TableManager Cache工具的原理
时间:2021-01-08
